# -*- coding:utf-8 -*-
# @Time:2024/4/1921:01
# @Author:miuzg
# @FileName:new test2.py
# @Software:PyCharm
import re

# 匹配是否存在的字符
print(re.findall(r'hello', 'hello world'))  # 存在就提取
print(re.findall(r'hi', 'hello world'))  # 不存在，空列表
print(re.findall(r'hello', 'hello hello world'))  # 存在几个就提取几个
print('~' * 40)

# 匹配数字字符(默认拆分数字) 元字符中用\d表示数值
print(re.findall(r'\d', '今天是2025/1/14'))  # 单独读取数字

# 匹配数字字符，并且不拆分 元字符中用\d+表示数值
print(re.findall(r'\d+', '今天是2025/1/14'))  # 单独读取数字

# 查找范围内指定的值，元字符用[]表示取值范围0-9 A-Z a-z
print(re.findall(r'[54]', '今天是2025/1/14'))
# 只找数字
print(re.findall(r'[0-9]', '今天是2025/1/14'))
# 只找字母
print(re.findall(r'[a-z]', '今天是2025/1/14'))
# 只找大写字母
print(re.findall(r'[A-Z]', '今天是2025/1/14'))
print('~' * 40)

# 查找捉急号码/手机号码 座机格式：3/4区号-号码 在元字符中，{}取的次数 ^表示取开头
print(re.findall(r'\d{4}-\d{7}','座机号是：0751-8809394，手机号是18127686385'))  # 提取4个数字~7歌数字 满足这个格式的数据
print(re.findall(r'1\d{10}','座机号是：0751-8809394，手机号是18127686385'))
print(re.findall(r'^1\d{10}','13232084488,座机号是：0751-8809394，手机号是18127686385'))  # 提取字符串是1开头的，后面是10个数字的数据

# 查找指定被包裹的数据 --> .表示除换行以外的所有数据，*表示是通配符，全选 （）提取范围
html = 'start"miuzg"end'
print(re.findall(r'start.*end',html))  # 提取包括start和end之间中的所有数据
print(re.findall(r'start(.*)end',html))  # 提取start和end之间的数据
